package com.efast.dmom.equipment.dao.checking;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.efast.dmom.equipment.bean.EquipCheckingListBean;
import com.efast.dmom.equipment.bean.EquipCheckingProgramOrder;
import com.efast.dmom.equipment.bean.EquipCheckingProgramStandard;
import com.efast.dmom.equipment.bean.EquipCheckingTaskBean;
import com.efast.dmom.equipment.bean.EquipCheckingTaskDetailsBean;
import com.efast.dmom.equipment.bean.EquipmentCheckingQueryBean;
import com.efast.dmom.equipment.entity.EquipCheckingItems;


/**

* @author 作者 Aaron Liu: 

* @version 创建时间：2019年8月14日 上午9:57:50 

* 类说明 

*/
public interface EquipCheckingOrderDao {

    /**
     * 根据点检规则的id查询点检项信息
     * @param list
     * @return
     */
    public List<EquipCheckingItems> queryCheckOrderItemsInfoByRuleIds(@Param(value = "list") List<EquipCheckingItems> list);

    /**
     *保存点检项
     * @param list
     */
    public void saveCheckingOrderItems(@Param(value = "list") List<EquipCheckingItems> list);

    /**
     * 更新点检项
     * @param list
     */
    public void updateCheckingOrderItems(@Param(value = "list") List<EquipCheckingItems> list);


    /**
     * 删除点检项
     * @param orderId
     */
    public void deleteCheckingOrderItems(@Param(value = "orderId") Integer orderId);
    
	  /**
     * 删除点检工单
     * @param checkId
     */
	public void deleteCheckingOrders(@Param(value = "checkId") Integer checkId);
	
	/**
     * 分页查询 点检单据列表（包含当前用户具备的单据操作handle）
     * @param queryBean
     * @return
     */
    public List<EquipCheckingListBean> queryCheckOrderByPage(EquipmentCheckingQueryBean queryBean);
    
    public int countCheckOrder(EquipmentCheckingQueryBean queryBean);
    
    
    public Integer addCheckingProgramOrder(EquipCheckingProgramOrder bean);
    
    public void addCheckingProgramStandard(List<EquipCheckingProgramStandard> list);
    
    public void deleteCheckingProgramOrder(Integer id);
    
    public List<Integer> selectCheckingProgramStandard(Integer id);
    
    public void deleteCheckingProgramStandard(Integer orderId);
    
    public void updateCheckingProgramOrder(EquipCheckingProgramOrder bean);

    public List<EquipCheckingTaskBean> queryTaskList(EquipCheckingTaskBean taskBean);

    public Integer queryTaskCount(EquipCheckingTaskBean taskBean);

    public List<EquipCheckingTaskDetailsBean> getCheckingTaskDetails(Integer taskId);
    
    public void updateCheckingTaskStatus(@Param(value = "taskId")Integer taskId, @Param(value = "taskStatus") String status);
    
    public List<EquipCheckingTaskBean> queryTODOTaskList(EquipCheckingTaskBean taskBean);
    
    public Integer queryTODOTaskCount(EquipCheckingTaskBean taskBean);
}
